package Presentacion;

import java.awt.EventQueue;


import java.awt.GridBagLayout;

import javax.swing.JLabel;

import java.awt.GridBagConstraints;
import java.awt.Insets;
import java.awt.BorderLayout;
import java.awt.EventQueue;

import javax.swing.JFrame;
import javax.swing.JPanel;
import javax.swing.border.EmptyBorder;
import javax.swing.JOptionPane;
import javax.swing.JTabbedPane;
import javax.swing.JTextField;
import javax.swing.JComboBox;
import javax.swing.DefaultComboBoxModel;
import javax.swing.JButton;
import javax.swing.ListSelectionModel;
import javax.swing.SwingConstants;
import javax.swing.JScrollPane;
import javax.swing.JTable;
import javax.swing.table.DefaultTableModel;

import Dominio.Pedido;
import Dominio.Productos;

import java.awt.event.ActionListener;
import java.awt.event.ActionEvent;
import java.util.LinkedList;
import javax.swing.border.TitledBorder;


public class VentanaCliente extends JFrame {

public static JScrollPane scrollPane;
	
	public JLabel lblMoneda;
	public JPanel contentPane;
	public JTextField txtCantidadMin;
	public JTextField txtPeriodicidad;
	public JTable tableProductos;
	public JTextField txtE;
	public static JTable tableProductosP;
	public DefaultTableModel m;
	public double precioTotal=0;
	public static JLabel lblprecioTotal;
	public static JComboBox<Integer> cBCantidad;
	public JButton btnEstablecerPedido;
	public JComboBox<String> comboBoxFormaPago;
	public static JButton btnAnadir;
	public JButton btnEliminar;
	public LinkedList <LinkedList <Productos>> listaDListas=new LinkedList <LinkedList <Productos>>();
	public static LinkedList<Productos> listaPCliente= new LinkedList<Productos>();
	public  JTable tablePE;
	public static LinkedList<Pedido> listaPedido= new LinkedList<Pedido>();
	public String nomUsuario="";
	public JPanel pPedido;
	public JPanel pGProductos;
	public VentanaExistencias vExistencias=new VentanaExistencias();
	public JButton btnAnadirP;
	public JButton btnLector;
	public JButton btnCerrarSesion ;
	private JButton btnCancelarPedido;
	
	
	
	

	/**
	 * Launch the application.
	 */
	public static void main(String[] args) {
		EventQueue.invokeLater(new Runnable() {
			public void run() {
				try {
					VentanaCliente frame =new VentanaCliente();
					frame.setVisible(true);
					//VentanaLogin vLogin=new VentanaLogin();						
					//vLogin.txtUsuario.setText("111111");
					//vLogin.txtContrasena.setText("12345");		
					//vLogin.btnAceptar.doClick();				
					//tableProductosP.changeSelection(0, 0, false, false);		
					//cBCantidad.setSelectedItem("2");
					//btnAnadir.doClick();					
					//JOptionPane.showMessageDialog(scrollPane, lblprecioTotal.getText());
					
					
				} catch (Exception e) {
					e.printStackTrace();
				}
			}
		});
	}

	/**
	 * Create the frame.
	 */
	@SuppressWarnings({ "unchecked", "rawtypes" })
	public VentanaCliente() {		
		setTitle("Cliente");
		setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
		setBounds(100, 100, 850, 500);
		contentPane = new JPanel();
		contentPane.setBorder(new EmptyBorder(5, 5, 5, 5));
		setContentPane(contentPane);
		GridBagLayout gbl_contentPane = new GridBagLayout();
		gbl_contentPane.columnWidths = new int[]{824, 0};
		gbl_contentPane.rowHeights = new int[]{428, 23, 0};
		gbl_contentPane.columnWeights = new double[]{0.0, Double.MIN_VALUE};
		gbl_contentPane.rowWeights = new double[]{0.0, 0.0, Double.MIN_VALUE};
		contentPane.setLayout(gbl_contentPane);
		
		JTabbedPane tabbedPane = new JTabbedPane(JTabbedPane.TOP);
		GridBagConstraints gbc_tabbedPane = new GridBagConstraints();
		gbc_tabbedPane.fill = GridBagConstraints.BOTH;
		gbc_tabbedPane.insets = new Insets(0, 0, 5, 0);
		gbc_tabbedPane.gridx = 0;
		gbc_tabbedPane.gridy = 0;
		contentPane.add(tabbedPane, gbc_tabbedPane);
		
		pPedido = new JPanel();
		tabbedPane.addTab("Pedido ", null, pPedido, null);
		GridBagLayout gbl_pPedido = new GridBagLayout();
		gbl_pPedido.columnWidths = new int[]{0, 0, 179, 0, 67, 0, 139, 0, 0, 0};
		gbl_pPedido.rowHeights = new int[]{0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0};
		gbl_pPedido.columnWeights = new double[]{1.0, 1.0, 0.0, 0.0, 0.0, 0.0, 0.0, 1.0, 1.0, Double.MIN_VALUE};
		gbl_pPedido.rowWeights = new double[]{1.0, 0.0, 0.0, 0.0, 1.0, 1.0, 0.0, 0.0, 0.0, 0.0, 1.0, 1.0, 1.0, Double.MIN_VALUE};
		pPedido.setLayout(gbl_pPedido);
		
		JLabel lblPeriodicidad = new JLabel("Periodicidad");
		GridBagConstraints gbc_lblPeriodicidad = new GridBagConstraints();
		gbc_lblPeriodicidad.anchor = GridBagConstraints.WEST;
		gbc_lblPeriodicidad.insets = new Insets(0, 0, 5, 5);
		gbc_lblPeriodicidad.gridx = 1;
		gbc_lblPeriodicidad.gridy = 3;
		pPedido.add(lblPeriodicidad, gbc_lblPeriodicidad);
		
		txtPeriodicidad = new JTextField();
		GridBagConstraints gbc_txtPeriodicidad = new GridBagConstraints();
		gbc_txtPeriodicidad.gridwidth = 3;
		gbc_txtPeriodicidad.insets = new Insets(0, 0, 5, 5);
		gbc_txtPeriodicidad.fill = GridBagConstraints.HORIZONTAL;
		gbc_txtPeriodicidad.gridx = 2;
		gbc_txtPeriodicidad.gridy = 3;
		pPedido.add(txtPeriodicidad, gbc_txtPeriodicidad);
		txtPeriodicidad.setColumns(10);
		
		JLabel lblSemanas = new JLabel("semanas");
		GridBagConstraints gbc_lblSemanas = new GridBagConstraints();
		gbc_lblSemanas.anchor = GridBagConstraints.WEST;
		gbc_lblSemanas.insets = new Insets(0, 0, 5, 5);
		gbc_lblSemanas.gridx = 5;
		gbc_lblSemanas.gridy = 3;
		pPedido.add(lblSemanas, gbc_lblSemanas);
		
		JLabel lblFormaDePago = new JLabel("Forma de Pago");
		GridBagConstraints gbc_lblFormaDePago = new GridBagConstraints();
		gbc_lblFormaDePago.anchor = GridBagConstraints.WEST;
		gbc_lblFormaDePago.insets = new Insets(0, 0, 5, 5);
		gbc_lblFormaDePago.gridx = 1;
		gbc_lblFormaDePago.gridy = 4;
		pPedido.add(lblFormaDePago, gbc_lblFormaDePago);
		
		comboBoxFormaPago = new JComboBox();
		comboBoxFormaPago.setModel(new DefaultComboBoxModel(new String[] {"", "Pay Pal", "Visa", "Tranferencia Bancaria ", "Contrarembolso"}));
		GridBagConstraints gbc_comboBoxFormaPago = new GridBagConstraints();
		gbc_comboBoxFormaPago.gridwidth = 3;
		gbc_comboBoxFormaPago.insets = new Insets(0, 0, 5, 5);
		gbc_comboBoxFormaPago.fill = GridBagConstraints.HORIZONTAL;
		gbc_comboBoxFormaPago.gridx = 2;
		gbc_comboBoxFormaPago.gridy = 4;
		pPedido.add(comboBoxFormaPago, gbc_comboBoxFormaPago);
		
		final JScrollPane scrollPane_1 = new JScrollPane();
		scrollPane_1.setBorder(new TitledBorder(null, "Productos", TitledBorder.LEADING, TitledBorder.TOP, null, null));
		GridBagConstraints gbc_scrollPane_1 = new GridBagConstraints();
		gbc_scrollPane_1.gridwidth = 2;
		gbc_scrollPane_1.gridheight = 6;
		gbc_scrollPane_1.insets = new Insets(0, 0, 5, 5);
		gbc_scrollPane_1.fill = GridBagConstraints.BOTH;
		gbc_scrollPane_1.gridx = 1;
		gbc_scrollPane_1.gridy = 5;
		pPedido.add(scrollPane_1, gbc_scrollPane_1);
		
		tableProductosP = new JTable();		
		
		tableProductosP.setSelectionMode(ListSelectionModel.SINGLE_SELECTION);
		
		
		JLabel lblCantidadProducto = new JLabel("Cantidad Producto");
		GridBagConstraints gbc_lblCantidadProducto = new GridBagConstraints();
		gbc_lblCantidadProducto.insets = new Insets(0, 0, 5, 5);
		gbc_lblCantidadProducto.gridx = 4;
		gbc_lblCantidadProducto.gridy = 5;
		pPedido.add(lblCantidadProducto, gbc_lblCantidadProducto);
		
		JScrollPane scrollPane_2 = new JScrollPane();
		scrollPane_2.setBorder(new TitledBorder(null, "Productos seleccionados", TitledBorder.LEADING, TitledBorder.TOP, null, null));
		GridBagConstraints gbc_scrollPane_2 = new GridBagConstraints();
		gbc_scrollPane_2.gridwidth = 2;
		gbc_scrollPane_2.gridheight = 6;
		gbc_scrollPane_2.insets = new Insets(0, 0, 5, 5);
		gbc_scrollPane_2.fill = GridBagConstraints.BOTH;
		gbc_scrollPane_2.gridx = 6;
		gbc_scrollPane_2.gridy = 5;
		pPedido.add(scrollPane_2, gbc_scrollPane_2);
		
		tablePE = new JTable();
		scrollPane_2.setViewportView(tablePE);
		
		cBCantidad = new JComboBox();
		cBCantidad.setModel(new DefaultComboBoxModel(new String[] {"", "1", "2", "3", "4", "5", "6", "7", "8", "9", "10", "11", "12", "13", "14", "15"}));
		GridBagConstraints gbc_cBCantidad = new GridBagConstraints();
		gbc_cBCantidad.insets = new Insets(0, 0, 5, 5);
		gbc_cBCantidad.gridx = 4;
		gbc_cBCantidad.gridy = 6;
		pPedido.add(cBCantidad, gbc_cBCantidad);
		
		btnAnadir = new JButton("A\u00F1adir");
		
		GridBagConstraints gbc_btnAnadir = new GridBagConstraints();
		gbc_btnAnadir.insets = new Insets(0, 0, 5, 5);
		gbc_btnAnadir.gridx = 4;
		gbc_btnAnadir.gridy = 7;
		pPedido.add(btnAnadir, gbc_btnAnadir);
		
		btnEliminar = new JButton("Eliminar");
		btnEliminar.addActionListener(new ActionListener() {
			public void actionPerformed(ActionEvent arg0) {
				String nombre=(String) tablePE.getValueAt(tablePE.getSelectedRow(), 0);
				String precio=(String) tablePE.getValueAt(tablePE.getSelectedRow(), 1);
			    String existencias=(String) tablePE.getValueAt(tablePE.getSelectedRow(), 2);	
			    String auxE=cBCantidad.getSelectedItem().toString();			   
			    int a=0;			    
				for(int i=0;i<listaPCliente.size();i++){
					if(listaPCliente.get(i).getNombre().equals(nombre)){
						a=Integer.valueOf(listaPCliente.get(i).getExistencias())-Integer.valueOf(auxE);
						if(a<=0){	
							int lok=Integer.valueOf(existencias);
							listaPCliente.remove(i);
							tablePE.setModel(llenarProductosC(listaPCliente));							
							precioTotal=precioTotal-(lok*Double.valueOf(precio));
						}else{	
							listaPCliente.get(i).setExistencias(String.valueOf(a));
							precioTotal=precioTotal-(Integer.valueOf(auxE)*Double.valueOf(precio));
							tablePE.setModel(llenarProductosC(listaPCliente));	
							
						}						
					}					
				}
				lblprecioTotal.setText(String.format("%.2f", precioTotal));
				
			}
		});
		GridBagConstraints gbc_btnEliminar = new GridBagConstraints();
		gbc_btnEliminar.insets = new Insets(0, 0, 5, 5);
		gbc_btnEliminar.gridx = 4;
		gbc_btnEliminar.gridy = 8;
		pPedido.add(btnEliminar, gbc_btnEliminar);
		
		JLabel lblCantidad = new JLabel("Cantidad Minima");
		lblCantidad.setHorizontalTextPosition(SwingConstants.LEADING);
		lblCantidad.setHorizontalAlignment(SwingConstants.CENTER);
		GridBagConstraints gbc_lblCantidad = new GridBagConstraints();
		gbc_lblCantidad.anchor = GridBagConstraints.SOUTH;
		gbc_lblCantidad.insets = new Insets(0, 0, 5, 5);
		gbc_lblCantidad.gridx = 4;
		gbc_lblCantidad.gridy = 9;
		pPedido.add(lblCantidad, gbc_lblCantidad);
		
		txtCantidadMin = new JTextField();
		GridBagConstraints gbc_txtCantidadMin = new GridBagConstraints();
		gbc_txtCantidadMin.fill = GridBagConstraints.HORIZONTAL;
		gbc_txtCantidadMin.anchor = GridBagConstraints.NORTH;
		gbc_txtCantidadMin.insets = new Insets(0, 0, 5, 5);
		gbc_txtCantidadMin.gridx = 4;
		gbc_txtCantidadMin.gridy = 10;
		pPedido.add(txtCantidadMin, gbc_txtCantidadMin);
		txtCantidadMin.setColumns(10);
		
		JLabel lblPrecioTotal = new JLabel("Precio total");
		GridBagConstraints gbc_lblPrecioTotal = new GridBagConstraints();
		gbc_lblPrecioTotal.anchor = GridBagConstraints.EAST;
		gbc_lblPrecioTotal.insets = new Insets(0, 0, 5, 5);
		gbc_lblPrecioTotal.gridx = 3;
		gbc_lblPrecioTotal.gridy = 11;
		pPedido.add(lblPrecioTotal, gbc_lblPrecioTotal);
		
		lblprecioTotal = new JLabel("");
		GridBagConstraints gbc_lblprecioTotal = new GridBagConstraints();
		gbc_lblprecioTotal.anchor = GridBagConstraints.EAST;
		gbc_lblprecioTotal.insets = new Insets(0, 0, 5, 5);
		gbc_lblprecioTotal.gridx = 4;
		gbc_lblprecioTotal.gridy = 11;
		pPedido.add(lblprecioTotal, gbc_lblprecioTotal);
		
		lblMoneda = new JLabel("euros");
		GridBagConstraints gbc_lblMoneda = new GridBagConstraints();
		gbc_lblMoneda.anchor = GridBagConstraints.WEST;
		gbc_lblMoneda.insets = new Insets(0, 0, 5, 5);
		gbc_lblMoneda.gridx = 5;
		gbc_lblMoneda.gridy = 11;
		pPedido.add(lblMoneda, gbc_lblMoneda);
		btnAnadir.addActionListener(new ActionListener() {
			public void actionPerformed(ActionEvent arg0) {	
				//JOptionPane.showMessageDialog(scrollPane, tableProductosP.getSelectedRow());				
				String nombre=(String) tableProductosP.getValueAt(tableProductosP.getSelectedRow(), 1);
				String precio=(String) tableProductosP.getValueAt(tableProductosP.getSelectedRow(), 2);
			    String existencias=cBCantidad.getSelectedItem().toString();
				precioTotal=precioTotal+(Integer.valueOf(existencias)*Double.valueOf(precio));
				boolean encontrado=false;
				int a=0;
				for(int i=0;i<listaPCliente.size();i++){
					if(listaPCliente.get(i).getNombre().equals(nombre)){
						a=Integer.valueOf(listaPCliente.get(i).getExistencias())+Integer.valueOf(existencias);
						listaPCliente.get(i).setExistencias(String.valueOf(a));
						tablePE.setModel(llenarProductosC(listaPCliente));						
						encontrado=true;
					}					
				}
				if(!encontrado){
					listaPCliente.add(new Productos(existencias,precio,nombre));
					tablePE.setModel(llenarProductosC(listaPCliente));					
				}								
				lblprecioTotal.setText(String.format("%.2f", precioTotal));					
			}
			
		});
		
		scrollPane_1.setViewportView(tableProductosP);
		
		btnEstablecerPedido = new JButton("Establecer Pedido");
		btnEstablecerPedido.addActionListener(new ActionListener() {
			public void actionPerformed(ActionEvent arg0) {
				
				String cantidadMin=txtCantidadMin.getText();
				String periodicidad=txtPeriodicidad.getText();
				String formaPago=comboBoxFormaPago.getSelectedItem().toString();
				String precioTotal=lblprecioTotal.getText();
				listaPedido.add(new Pedido(nomUsuario,cantidadMin,periodicidad,formaPago,precioTotal,listaPCliente));
				bloquear();
				//vPro.recuperarExistencias(listaPCliente);
				tableProductos.setModel(llenarProductosC(listaPCliente));
			}
		});
		GridBagConstraints gbc_btnEstablecerPedido = new GridBagConstraints();
		gbc_btnEstablecerPedido.insets = new Insets(0, 0, 5, 5);
		gbc_btnEstablecerPedido.gridx = 6;
		gbc_btnEstablecerPedido.gridy = 11;
		pPedido.add(btnEstablecerPedido, gbc_btnEstablecerPedido);	
		
		JButton btnModificarPedido = new JButton("Modificar Pedido");
		btnModificarPedido.addActionListener(new ActionListener() {
			public void actionPerformed(ActionEvent arg0) {
				desbloquear();
			}
		});
		GridBagConstraints gbc_btnModificarPedido = new GridBagConstraints();
		gbc_btnModificarPedido.insets = new Insets(0, 0, 5, 5);
		gbc_btnModificarPedido.gridx = 7;
		gbc_btnModificarPedido.gridy = 11;
		pPedido.add(btnModificarPedido, gbc_btnModificarPedido);
		
		btnCancelarPedido = new JButton("Cancelar Pedido");
		btnCancelarPedido.addActionListener(new BtnCancelarPedidoActionListener());
		GridBagConstraints gbc_btnCancelarPedido = new GridBagConstraints();
		gbc_btnCancelarPedido.insets = new Insets(0, 0, 0, 5);
		gbc_btnCancelarPedido.gridx = 7;
		gbc_btnCancelarPedido.gridy = 12;
		pPedido.add(btnCancelarPedido, gbc_btnCancelarPedido);
		
		pGProductos = new JPanel();
		tabbedPane.addTab("Gestion Productos", null, pGProductos, null);
		GridBagLayout gbl_pGProductos = new GridBagLayout();
		gbl_pGProductos.columnWidths = new int[]{0, 101, 153, 0, 0, 0, 0, 0};
		gbl_pGProductos.rowHeights = new int[]{0, 0, 0, 0, 0, 0, 0, 0};
		gbl_pGProductos.columnWeights = new double[]{1.0, 1.0, 1.0, 1.0, 0.0, 0.0, 1.0, Double.MIN_VALUE};
		gbl_pGProductos.rowWeights = new double[]{1.0, 1.0, 0.0, 1.0, 0.0, 1.0, 1.0, Double.MIN_VALUE};
		pGProductos.setLayout(gbl_pGProductos);
		
		scrollPane = new JScrollPane();
		scrollPane.setBorder(new TitledBorder(null, "Pedido", TitledBorder.LEADING, TitledBorder.TOP, null, null));
		GridBagConstraints gbc_scrollPane = new GridBagConstraints();
		gbc_scrollPane.gridwidth = 2;
		gbc_scrollPane.gridheight = 5;
		gbc_scrollPane.insets = new Insets(0, 0, 5, 5);
		gbc_scrollPane.fill = GridBagConstraints.BOTH;
		gbc_scrollPane.gridx = 1;
		gbc_scrollPane.gridy = 1;
		pGProductos.add(scrollPane, gbc_scrollPane);
		
		tableProductos = new JTable();
		tableProductos.setSelectionMode(ListSelectionModel.SINGLE_SELECTION);
		tableProductos.setModel(new DefaultTableModel(
			new Object[][] {
			},
			new String[] {
			}
		));
		scrollPane.setViewportView(tableProductos);
		
		JLabel lblExistencias = new JLabel("Nuevas Existencias");
		GridBagConstraints gbc_lblExistencias = new GridBagConstraints();
		gbc_lblExistencias.anchor = GridBagConstraints.EAST;
		gbc_lblExistencias.insets = new Insets(0, 0, 5, 5);
		gbc_lblExistencias.gridx = 3;
		gbc_lblExistencias.gridy = 1;
		pGProductos.add(lblExistencias, gbc_lblExistencias);
		
		txtE = new JTextField();
		GridBagConstraints gbc_txtE = new GridBagConstraints();
		gbc_txtE.gridwidth = 2;
		gbc_txtE.insets = new Insets(0, 0, 5, 5);
		gbc_txtE.fill = GridBagConstraints.HORIZONTAL;
		gbc_txtE.gridx = 4;
		gbc_txtE.gridy = 1;
		pGProductos.add(txtE, gbc_txtE);
		txtE.setColumns(10);
		
		btnAnadirP = new JButton("<html>Actualizar<br>Existencias</html>");
		btnAnadirP.addActionListener(new ActionListener() {
			public void actionPerformed(ActionEvent e) {				
				String nombre=(String) tableProductos.getValueAt(tableProductos.getSelectedRow(), 0);
				String precio=(String) tableProductos.getValueAt(tableProductos.getSelectedRow(), 1);
				String existencias=(String) tableProductos.getValueAt(tableProductos.getSelectedRow(), 2);
			    String auxE=txtE.getText();				
				boolean encontrado=false;
				int a=0;
				for(int i=0;i<listaPCliente.size();i++){
					if(listaPCliente.get(i).getNombre().equals(nombre)){
						a=Integer.valueOf(listaPCliente.get(i).getExistencias())+Integer.valueOf(auxE);
						listaPCliente.get(i).setExistencias(String.valueOf(a));
						tableProductos.setModel(llenarProductosC(listaPCliente));
						encontrado=true;
					}					
				}
				if(!encontrado){
					listaPCliente.add(new Productos(existencias,precio,nombre));
					tableProductos.setModel(llenarProductosC(listaPCliente));
				}	
				//vPro.recuperarExistencias(listaPCliente);
				txtE.setText("");
				
			}
		});
		GridBagConstraints gbc_btnAnadirP = new GridBagConstraints();
		gbc_btnAnadirP.anchor = GridBagConstraints.NORTHEAST;
		gbc_btnAnadirP.insets = new Insets(0, 0, 5, 5);
		gbc_btnAnadirP.gridx = 3;
		gbc_btnAnadirP.gridy = 3;
		pGProductos.add(btnAnadirP, gbc_btnAnadirP);
		
		btnLector = new JButton("Lector ");
		btnLector.addActionListener(new ActionListener() {
			public void actionPerformed(ActionEvent e) {
				String nombre=(String) tableProductos.getValueAt(tableProductos.getSelectedRow(), 0);
				String precio=(String) tableProductos.getValueAt(tableProductos.getSelectedRow(), 1);
			    String existencias=(String) tablePE.getValueAt(tableProductos.getSelectedRow(), 2);	
			    String auxE=txtE.getText();			   
			    int a=0;			    
				for(int i=0;i<listaPCliente.size();i++){
					if(listaPCliente.get(i).getNombre().equals(nombre)){
						a=Integer.valueOf(listaPCliente.get(i).getExistencias())-Integer.valueOf(auxE);
						if(a<=Integer.valueOf(txtCantidadMin.getText())){
							//JOptionPane.showMessageDialog (tableProductos,"Se ha avisado al Proveedor de la necesidad de un nuevo envio.");
						}
						if(a<=0){	
							//JOptionPane.showMessageDialog (tableProductos,"No hay stock de este productos.");
							int lok=Integer.valueOf(existencias);
							listaPCliente.remove(i);
							tableProductos.setModel(llenarProductosC(listaPCliente));							
							precioTotal=precioTotal-(lok*Double.valueOf(precio));
						}else{	
							listaPCliente.get(i).setExistencias(String.valueOf(a));
							precioTotal=precioTotal-(Integer.valueOf(auxE)*Double.valueOf(precio));
							tableProductos.setModel(llenarProductosC(listaPCliente));	
							
						}
					}					
				}
				//vPro.recuperarExistencias(listaPCliente);
			}
		});
		GridBagConstraints gbc_btnLector = new GridBagConstraints();
		gbc_btnLector.anchor = GridBagConstraints.NORTH;
		gbc_btnLector.insets = new Insets(0, 0, 5, 5);
		gbc_btnLector.gridx = 4;
		gbc_btnLector.gridy = 3;
		pGProductos.add(btnLector, gbc_btnLector);
		
		btnCerrarSesion = new JButton("Cerrar Sesion");
		btnCerrarSesion.addActionListener(new ActionListener() {
			public void actionPerformed(ActionEvent arg0) {				
				//String []args={"java","VentanaLogin"};
				//VentanaLogin.main(args);
				VentanaLogin.window.frmLogin.setVisible(true);
				
			}
		});
		btnCerrarSesion.setHorizontalTextPosition(SwingConstants.CENTER);
		btnCerrarSesion.setHorizontalAlignment(SwingConstants.RIGHT);
		GridBagConstraints gbc_btnCerrarSesion = new GridBagConstraints();
		gbc_btnCerrarSesion.anchor = GridBagConstraints.NORTHEAST;
		gbc_btnCerrarSesion.gridx = 0;
		gbc_btnCerrarSesion.gridy = 1;
		contentPane.add(btnCerrarSesion, gbc_btnCerrarSesion);
		
	}
	public void bloquear(){
		txtCantidadMin.setEnabled(false);
		txtPeriodicidad.setEnabled(false);
		comboBoxFormaPago.setEnabled(false);
		lblprecioTotal.setEnabled(false);
		btnEstablecerPedido.setEnabled(false);
		btnAnadir.setEnabled(false);
		btnEliminar.setEnabled(false);
		tablePE.setEnabled(false);
		cBCantidad.setEnabled(false);
		
	}
	public void desbloquear(){
		txtCantidadMin.setEnabled(true);
		txtPeriodicidad.setEnabled(true);
		comboBoxFormaPago.setEnabled(true);
		lblprecioTotal.setEnabled(true);
		btnEstablecerPedido.setEnabled(true);
		btnAnadir.setEnabled(true);
		btnEliminar.setEnabled(true);
		tablePE.setEnabled(true);
		cBCantidad.setEnabled(true);
	}
	public DefaultTableModel llenarProductosC(LinkedList<Productos> lista){		
		String titulos[]={"Nombre","Precio","Existencias"};
		String datos[]=new String [3];
		DefaultTableModel model = new DefaultTableModel(null,titulos);
		for(int i=0; i<lista.size(); i++){
			datos[0]=lista.get(i).getNombre();
			datos[1]=lista.get(i).getPrecio();
			datos[2]=lista.get(i).getExistencias();
			model.addRow(datos);
		} 		
		return model;
	}
	
	public void desactivarEstablecer(){
		btnEstablecerPedido.setEnabled(false);
	}

	public void rellenarCampos(Pedido pedido) {
		txtPeriodicidad.setText(pedido.getPeriodicidad());
		txtCantidadMin.setText(pedido.getCantidad_minima());
		lblprecioTotal.setText(pedido.getPrecio_total());
	}
	public void cargarProductosP(Productos []producto) throws Exception{
		String titulos[]={"ID","Nombre","Precio"};
		String datos[]=new String [3];
		m = new DefaultTableModel(null,titulos);
		for(int i=0;i<producto.length;i++){
			datos[0]=String.valueOf(i+1);
			datos[1]=producto[i].getNombre();
			datos[2]=producto[i].getPrecio();
			m.addRow(datos);
		}		
		tableProductosP.setModel(m);		
		
	}
	public void insertarCliente(String cliente){
		nomUsuario=cliente;
	}
	public static LinkedList <Pedido> getlistaPedido(){
		return listaPedido;
	}


	private class BtnCancelarPedidoActionListener implements ActionListener {
		public void actionPerformed(ActionEvent e) {
			listaPCliente.clear();
			tableProductos.setModel(llenarProductosC(listaPCliente));
			tablePE.setModel(llenarProductosC(listaPCliente));
			for(int i=0; listaPedido.size()>i; i++){
				if(listaPedido.get(i).getCliente().equals(nomUsuario)){
					listaPedido.remove(listaPedido.get(i));
				}
			}
		}
	}
}
